Introduction

When in the course of computing events it becomes apparent that not all calculators are created equal, one must turn no further than to GraphCalc. When the requirements of your computations exceed the capabilities of your four-function figurer, turn to GraphCalc. When you need to see what multiple compound exponential sinusoidal waves look like, turn to GraphCalc. Haven't we all at some point wanted to see what "sin(x)^2-3*ln(tan(x*pi))" looked like, and the Windows calculator just wasn't up to the task?

GraphCalc can be your first, last, and only line of offense against the mathematics that threaten to push you over the brink of insanity. It slices, dices, shreds and purees functions that leave other calculators wondering what hit them.

GraphCalc is an all-in-one solution to everything from everyday arithmetic to statistical analysis, from betas to Booleans, from cubes to calculus, from decimals to derivatives. GraphCalc combines all the features of a professional mathematics package with the simplicity of an easy to learn windows interface. It provides user-friendly contextual help to guide you through the easy and fun process of mastering GraphCalc.

GraphCalc is ready to use out of the box. Don't bother reading the documentation (which ironically is what you are doing right now). Just start the program and you'll see how easy it is to use.


Operation of GraphCalc

GraphCalc supports all of the trigonometric function: Sin, Cos, Tan, ArcSin, ArcCos, ArcTan, HypSin, HypCos, and HypTan. They may be used in both an expression and in an equation to be graphed. They are entered just as they are said, with the operator first. For example:

  • sin (2pi)

  • tan (x)

  • hypcos (x^2)


Menu Commands

File

Saving Output - Allows the user to save the output to an rtf file

Scripts

Save Script - Saves a script from the current expression history

Run Script - Runs a script

Settings

Load Settings File - Loads settings from a .gcl file

Save Settings Now - Saves settings to default.gcl

Save Settings As - Saves settings to a .gcl file of your choice

Print - prints either the Output Window, 2D Graph, or 3D Graph

Exit - Exits the program

Edit

Cut, Copy, Paste - The usual

Clear - Allows the user to clear different aspects of GraphCalc.

Insert

Menu equivalent of the buttons

Catalog - A list of all operators and functions

Command - A list of all scripting commands

2D Graph

Options - Brings up the Graph Options dialog box

Equations - Brings up the equations tab of the Graph Options dialog box

Range & Precision - Brings up the range and precision tab of the Graph Options dialog box

Display - Brings up the display tab of the Graph Options dialog box

Zoom - Changes the range of the graph in many different ways

Analysis

Find Area - Calculates a definite integral

Trace - Activates tracing mode and allows you to trace the graph and determine precise x and y coordinates

Evaluate - evaluates an equation at a point

Tangent Line - Draws a tangent line to a graph at a point

Clear Tangent Lines - for explanation, reread title :)

Distance - Finds the distance between two points on a curve

Axis Intercepts - Find where an equation intersects the axes

Intersection of 2 Equations - Find where two equations intersect

Equation Min & Max - Find a local minimum or maximum on an equation

GraphTabs

Add Graph Tab - Adds a graphing tab to the window to allow multiple independent graphs

Remove Current Graph Tab - Removes the current graphing tab

Rename Tab - Renames the current tab

Copy Graph to Clipboard - places a bitmap of the graph on the clipboard

Print Graph - Prints the current graph view to the printer

Save as Bitmap - Saves the current graph view as a bitmap file

View Full Window - Toggles full window mode enlarging the graph window or the output window to the size of the entire program

3D Graph

Options - Brings up the Graph Options dialog box

Equations - Brings up the equations tab of the Graph Options dialog box

Range & Precision - Brings up the range and precision tab of the Graph Options dialog box

Axes - Brings up the axes tab of the Graph Options dialog box

Tick Marks - Brings up the tick marks tab of the Graph Options dialog box

Re-Compute All Equations

Recenter View - Resets the view to a straight on look

Zoom In

Zoom Out

Auto-RotateSpins the graph automatically

View Full Window - Toggles full window mode enlarging the graph window or the output window to the size of the entire program

Evaluate - evaluates an equation at a point

Copy Graph to Clipboard - places a bitmap of the graph on the clipboard

Export to DXF - Exports the currently displayed equations to a DXF file

Save as Bitmap - Saves the current graph view as a bitmap file

Print Graph - Prints the current graph view to the printer

Tools

Equation Solver - Open the Equation solver

Script Library - Displays the script library hierarchy

Options

Mode - Changes basic program modes, like radians vs. decimal

Program Options - Changes basic program options

Set Base - Allows the user to select the current base for computation

Output Font Settings

Answer - Changes the font in which the answer will be displayed

Base - Changes the font in which the base will be displayed

Detailed Output - Changes the font in which the details will be displayed

Expression - Changes the font in which the expression will be displayed

View

Button Palette - Changes the displayed button palette. Same as using the alt button.

Always on top - Keeps the GraphCalc window on top of all other windows

View Full Window - Toggles full window mode enlarging the graph window or the output window to the size of the entire program

Help

Help - Opens the help file you are currently looking at

About - Displays author information and version number


Buttons

The buttons that have a small black triangle in the lower right corner of them have additional related functions. Right click on a button to see its additional functions. The additional functions are listed below with the main entry.

Alt

Switches between button palettes. See below

Base

Set Base - Sets the current base

Convert Base - Converts from the current base to another base without changing the current base

Help with Bases - Brings up the bases help file

Cons

Display a list of constants that can be added to the expression

Conv

Display a list of conversions that can be added to the expression

Clear

Left click peforms the character option

Character - Clears one character in the expression box

Expression - Clears the entire expression box

Graph - Unchecks all the graphs in the current graph tab

Output - Clears the output window

History - Deletes the expression history drop down list

All - Performs all the above, plus clears all graphs in all graph tabs

Log

Adds a logarithm to the expression

10^ - Right clicking provides "10^" added to the expression

Sin, Cos, Tan

Adds the corresponding trig function to the expression

Right clicking provides hyperbolic and arc options

^

Power operator (pronounced "to the")

Ln

Adds a natural logarithm to the expression

e^ - Right clicking provides "e^" added to the expression

EE

Multiplies a number by 10 to the x power

Right clicking provides 10 to the -x power

( and)

Normal, everyday parentheses

/, *, -, +

Basic math operators

0,1,2,3,4,5,6,7,8,9

Numbers... same as using the keypad

X2

Adds a squared term to the expression

Right click provides additional powers of x

Square Root Button

Adds a square root to the expression

Right click provides additional roots of x

X-var

Adds a variable to the expression

Ans

Places the previous answer in the expression

Right clicking brings up the most recent 20 answers

.

Adds a decimal to the expression

,

Adds a comma to the expression for use with functions that take multiple arguments

Enter

Tells the calculator to compute the expression

Math Palette

Mod

Performs a modulus operation

Floor

Returns the greatest integer less than the argument

Ceil

Returns the lowest integer greater than the argument

fib

Returns the nth Fibonacci number

%

Returns a percentage (ie. 1/100)

Min

Returns the minimum of two values

Max

Returns the maximum of two values

gcd

Returns the greatest common divisor of two values

lcm

Returns the least common multiple of two values

abs

Returns the absolute value of a number

fPart

Returns the fractional piece of a number

iPart

Returns the integer piece of a number

round

rounds a number to the nearest integer

Test Palette

!=

Tests if 2 values are not equal

==

Tests if 2 values are equal

>

Tests if the first value is greater than the second value

<

Tests if the first value is less than the second value

>=

Tests if the first value is greater than or equal to the second value

<=

Tests if the first value is less than or equal to the second value

Probability Palette

n!

Returns the factorial of a number

nCr

Returns the number of combinations of n and r

nPr

Returns the number of permutations of n and r

frand

Returns floating point random number between the two arguments

irand

Returns random integer between the two arguments

Statistics Palette

mean

Returns the arithmetic mean (average) of a list of numbers. Ex. mean( 90 : 95 : 88 : 92.5 : 86.5) = 90.4

med

Returns the arithmetic median (middle) of a list of numbers. Ex. median( 90 : 95 : 88 : 92.5 : 86.5) = 90

mode

Returns the arithmetic mode (number that occurs most often) of a list of numbers. Ex. mode( 90 : 95 : 88 : 92.5 : 86.5) = 90

stdev

Returns the standard deviation of a list of numbers. Ex. stdev( 90 : 95 : 88 : 92.5 : 86.5) = 3.056

var

Returns the variance of a list of numbers. Ex. variance( 90 : 95 : 88 : 92.5 : 86.5) = 9.339

Hex Palette

A

Enter the hex digit 'A'

B

Enter the hex digit 'B'

C

Enter the hex digit 'C'

D

Enter the hex digit 'D'

E

Enter the hex digit 'E'

F

Enter the hex digit 'F'


Settings

GraphCalc allows you to save your settings in a settings file. GraphCalc settings files have a .gcl extension. They are plain text files that store GraphCalc's settings.

You can load and save settings files at any time during execution.

You can also specify whether or not you want GraphCalc to automaticaly save your settings when you exit the program. This can be done via the File->Options->Save Settings On Exit menu item.

All of GraphCalc's settings are saved with just a few exceptions:

  • Whether or not you are in full window mode

  • The fonts used for output. We are currently working on this and should be done in the near future. [UPDATE: GraphCalc 3.0 and later now supports this feature]

GraphCalc keeps track of the last settings file you used and loads that one on startup.


Accelerator Keys

File

Load Settings File - Ctrl + O

Save Settings File - Ctrl + S

Save Settings As - Ctrl + Alt + S

Print Output/Graph - Ctrl + P

Exit - Ctrl + Q

Edit

Cut - Ctrl + X

Copy - Ctrl + C

Paste - Ctrl + V

Insert

Catalog - Alt + C

2D Graph

Options - Ctrl + G

Zoom

In->X - F7

In->Y - F8

In->X & Y - F6

Out->X - F10

Out->Y - F11

Out->X & Y - F9

Standard - Alt + S

Decimal - Alt + D

Trig - Alt + T

Integer - Alt + I

Fit - Alt + F

Previous Range - Ctrl + P

Copy Graph To Clipboard - Ctrl + C

Trace - Ctrl + T

Find Area - Ctrl + F

Evaluate - Ctrl + E

Distance - Ctrl + D

Tangent Line - Ctrl + L

View Full Window - Ctrl + W

Add Graph Tab - Alt + A

Remove Current Graph Tab - Alt + R

Rename Tab - Alt + N

Print Graph - Ctrl + P

3D Graph

Options - Ctrl + G

Zoom in - +

Zoom out - -

View Full Window - Ctrl + W

Copy Graph To Clipboard - Ctrl + C

Options

Sounds - Ctrl + Shift + E

Mode - Ctrl + M

Expression Font - Ctrl + R

Save Settings on Exit - Ctrl + Shift + S

View

Set Button Palette

Probability - Ctrl + Shift + P

Test - Ctrl + Shift + T

Math - Ctrl + Shift + M

Stats - Ctrl + Shift + A

None - Ctrl + Shift + N

Display Detailed Output - Ctrl + Shift + D

Tool Tips - Ctrl + Shift + H

Help

Help - F1


Output Printing

You can print the contents of the output window by selecting print from the file menu when you are looking at the output window.


Save Output

Begining in version 3.0, GraphCalc now has the ability to save the text output to an rtf file. An .rtf (Rich Text Format) file is a common file format that is readable by programs such as Microsoft Word, WordPad, and many other text editors.


Basic Operations

GraphCalc is a very useful calculator that can even be a replacement for the standard windows calculator. Its small footprint allows it to load quickly and perform with blazing speed. Even for the simplest tasks, GraphCalc can give you accurate answers fast.

The basic operators "+,-,*,/" are used just as they would be on any calculator that uses infix notation (that's the way most are). The other operators are placed in the equation in the same way they are spoken. Here are a few examples:

  • sin (2pi)

  • sqrt (5)

  • 5^3

  • log (3+4)


The Interpreter

The GraphCalc interpreter acts very much like any standard graphing calculator. It understands the standard model for order of operations. It knows how to interpret parentheses correctly. It even knows how to compute implied multiplication. All this allows for incredible leniency when entering your expressions. For accurate results, here are a few things you should know:

  • The interpreter ignores all white space. "3+2" is the same as "3 + 2".

  • The interpreter recognizes parentheses in the appropriate manner, such that "2*(5-1)" is 8, not 9.

  • Order of operations are as follows:

    • Math Functions (GCD, LCM, Min, Max, iRand, fRand)

    • Log and Natural Log

    • Permutations, Combinations, and Factorials

    • Trig Functions

    • Power Functions (square root, to the...)

    • Multiplication and Division

    • Mod Operator

    • Addition and Subtraction

    • Comparison Operators (Greater than, Less than...)


Trigonometry

GraphCalc supports all of the trigonometric functions: Sin, Cos, Tan, ArcSin, ArcCos, ArcTan, HypSin, HypCos, and HypTan. They may be used in both an expression and in an equation to be graphed. They are entered just as they are said, with the operator first. For example:

  • sin (2pi)

  • tan (x)

  • hypcos (x^2)


Bases

GraphCalc fully supports any base from base 2 through base 36. Whether it's binary, decimal, or hexadecimal, GraphCalc will give you accurate fast results. The digits above 9, in bases higher than 10, are represented by the letters A-Z (must be upper case), allowing up to base 36.

GraphCalc starts out in base 10. All calculations are done as normal until you specify otherwise. The are two basic things you can do with bases. You can do arithmetic in another base, or you can convert a number between bases. To do either, use the base button. Either enter an equation in the form "1234 convbase 2" to convert 1,234 to binary, or set the base to binary and enter an equation like "1000000000 + 11010010".

There are some natural limitations to using bases other than 10. For example, it only makes sense to take the sin(45) in base 10, because the 45 is referring to degrees or radians not units. GraphCalc will only let you use basic arithmetic with other bases. The technical limitation is based on the confusion of alpha-numeric characters with operators when using bases higher than ten.

Also, graphing makes no sense in other bases. Consequently, when you switch to start graphing, GraphCalc automatically knows to use only base ten.


Equations Of Equations

Sometimes equations can depend on other equations. Often you'll want to see how an equation acts with an additional term. GraphCalc provides an easy and powerful way to accomplish this.

For example, if your first equation was "sin((x/2)^2)" and you wanted a second equation that was the same, but with an additional cos term, you could enter "(y1)+cos(x)". To include another equation just put the term (y1) or whatever number you'd like to include. This technique works for all 2D Euclidean graphs "(y1)", 2D Polar graphs "(r1)", and all 3D graphs "(z1)".

Equations do not have to be active to be used in other equations. Y1 may contain an equation you'd like to use in another equation, but you don't want to see Y1 itself. No problem. Leave Y1 unchecked. It will still be available for use in other equations.

Accidently you might make a loop. If you try to make Y1 use Y2 and Y2 use Y1, or similar loops, GraphCalc will let you know, and tell you to fix the situation.


2D Graph Printing

When you select print, you will have the following options:

Setup

Define your printer specific options like paper size and orientation.

Center on Page

Put the graph in the center of the page. When unchecked, the graph is in the upper left.

Plot Equations List

Show a color coded legend at the bottom of the page.

Title

Put a title on the top of the page

Sizing

Automatic - Sizes the graph to approximately 50% of the height and width of the paper while preserving the aspect ratio of the graph view.

Full Page - Make the graph the size of the paper.

Specify - Allow you to specify the exact size you would like the graph.

Preview

This area shows what the printout will look like. The large grey rectangle represents the size and position of the graph. There may also be rectangles at the top for the title, and bottom for the equations legend.


Save Graph As Bitmap

To save a 2D or 3D graph as a bitmap, right click the graph and select Save as Bitmap. You will be prompted for a filename and GraphCalc will put the current graph view in the file.

Warning: If you use a large view for your graph, the bitmap could be quite large. A 1000 x 1000 pixel bitmap is approximately 3 Megabytes.


Copy Graph to Clipbaord

To copy either a 2D or 3D graph to the clipboard, right click the graph and select Copy Graph to Clipboard. The current graph view will be copied to the Windows clipboard. This can then be used in most applications. You can paste it into a document or a graphic editor, or any other application that supports bitmaps.


Graph Tabs

Graph Tabs are the tabs that display graphs in GraphCalc. You may have up to 4 graph tabs. Each graph tab is independant of the others. All settings and functions related to a graph tab are specific to that one. You may add and remove graph tabs at will by selecting the appropriate command from the menus, or right clicking on the graph. However you must have at least one graph tab at all times. You can also rename graph tabs if you would like by selecting "Rename Tab" from the graph menu.


Auto-Center

Auto-Center is a method of centering the graph on a different location. To center a graph on a different location double click where you would like the center of the graph to be. The graph will be redrawn with that point at the center.


Full Window View

To get a larger view of your graph or output window, you can use the full window view command. This will temporalily hide the button palettes.

To do this, either right click on the graph and select View Full Window or you can select View Full Window from the view menu. To return to normal view mode, just repeat the command.


Panning

If you move your cursor toward the edge of the graph, the cursor will change to a different arrow. If you click on the graph, the graph will pan in the direction of that arrow.


Selection Zoom

Selection Zoom allows you to zoom in on a given portion of the graph. To use Selection Zoom press and hold the left mouse button on the graph where you would like the corner of your selection to start. Then drag the mouse until the rectangle surrounds the area on which you would like to zoom in.

If you would rather have a square instead of a rectangle, hold down SHIFT while dragging the mouse.

Once you let go of the left mouse button, the graph will zoom in on the selected area.


Zooming

Zooming allows you to zoom in or out of the graph in many different ways.

  • In
    • Zoom in on the X only
    • Zoom in on the Y only
    • Zoom in on X and Y
  • Out
    • Zoom out on the X only
    • Zoom out on the Y only
    • Zoom out on X and Y
  • Standard - Zoom so that the X and Y ranges are from -10 to 10
  • Decimal - Zoom so that each pixel is the increment specified by Zoom Decimal Precision in the graph options
  • Trig - Zoom so that each pixel has an increment of pi/48
  • Integer - Zoom so that each pixel is 1 integer, ie a graph 100 pixels wide will have a range of 100
  • Fit - Zoom so that the Xmin == Ymin and Xmax == Ymax in the range


Equation Intersections

To find the intersection of two 2D Euclidean equations, first graph the equations as normal, then choose the find intersection option. In the dialog box, choose the equations you'd like to find the intersection of. You must also give an initial guess.

The initial guess does not neccessarily have to be very close to the actual intersection. But, the closer the guess, you'll be more likely to get an answer, and get it quickly.

If equations have more than one intersection, it's impossible to guarantee which intersection you'll find. But the closer your initial guess, the more likely you'll find the intersection you're looking for.


Equation Intercepts

To find the intercepts of a 2D Euclidean equation, first graph the equation as normal, then choose the Axis Intercepts option. GraphCalc will immediately return the Y Intercept by computing f(0). To find an X Intercept, you must provide it with an inital guess, and then hit Solve.

If an equation has more than one X Intercept, it's impossible to guarantee which intersection you'll find. But the closer your initial guess, the more likely you'll find the intersection you're looking for.


Equation Min Max

The Equation Min & Max feature can find local minimums and maximums on a curve. These are places where the slope of the curve is 0. To find one, first graph the 2D Euclidean equation, then select the Equation Min & Max feature from the Analysis menu. Enter a range in which you'd like to find the min or max, and hit Solve, and GraphCalc will return the coordinates of the point.


Find Area

This function allows you to find the area under an equation or between two equations in a given domain.

The Find Area dialog box allows you to specify the domain (the range of x values) and to choose one or two equations. If you choose one equation, you will find the area between that equation and the x-axis. If you choose two equations, you will find the area between the two equations. Regardless of how many equations you select, the shaded area will be displayed on the graph.

To turn the shaded area off you must select "Find Area" form the graph menu again, or hit CTRL+F.


Cursor Position

The Cursor Position is the setting which indicates whether or not the coordinates of the mouse are to be displayed on the graph. The default setting is on.


Evaluate

Evaluate brings up a dialog box that allows you to evaluate any of the currently displayed equations at any x value. Select the equation you want to find the value of and put in the x value. The y value is updated in real-time. So as soon as you change the equation or the x value, the new y value will be displayed.


Distance

Distance allows you to find the distance between any two points on any two equations. There are two ways to draw a distance line:

  1. While tracing hit 'D' (not case sensitive) at the point you would like to start your line. At this point an anchor is placed at the point you hit 'D'. Continue tracing towards your second desired point. You will see a line from where you first hit 'D' to where the tracing cross-hair currently is and the distance of that line displayed in the upper left corner of the graph. You can select another equation by pressing the up and down arrows, or continue tracing. Once you have reached the end-point for your distance line hit 'D' again. A final line will be drawn from your start point to the finish point and the distance displayed in the upper left corner of the graph.

  2. Select "Distance" from the graph menu. You will be prompted for starting and ending x values for the line, and one or two equations. If you select one equation, the line will go from the first x value on the selected equation, to the second x value on the selected equation. If you select two equations, the start of the line will be at the first x value on the first equation to the second x value on the second equation. When you hit 'Ok' the line will be drawn on the graph.

To remove the distance line do one of the following:

  1. Press 'D' while tracing

  2. Select "Distance" from the graph menu

You may have only one distance line per graph tab at any one time.


Tangent Lines

Tangent Line allows you to draw a tangent line at any point along any of the displayed equations.
There are two ways to draw a tangent line:

  1. While tracing hit the letter 'T' (not case sensitive). A tangent line will be drawn at that point.

  2. Select "Tangent Line" from the graph menu. You will be asked for an equation and x value at which to draw the tangent line.

You may draw up to one tangent line per equation on the graph at any one time. To turn off a tangent line you can do one of the following:

  1. While tracing the equation that has a tangent line drawn, hit 'T' and the tangent line will disappear.

  2. Select "Clear Tangent Lines" from the graph menu and all tangent lines will be removed.


Tracing

You can use tracing to display a cross-hair on the graph move it along an equation to find the x and y values at any point on the equation.

To turn tracing on, right click on the graph and select "Trace".

Once tracing is on, you can use the arrow keys to move left and right along the equations. Pressing the up or down arrow will move the cross-hair to the next equation.

If you trace all the way to the edge of the graph, it will automatically pan over so that the cross-hair will still be in view.


Equation Values Table

The Equation Values Table allows you to view the results of equations at regular x intervals. When you open the dialog, GraphCalc computes values for all the expressions you currently have graphed, and it uses the current x range as the initial settings.

The x min, and x max values show the values between which you'd like to compute the expressions. The step is the distance between each of the x values. The decimal places values tells GraphCalc how many decimal places to display in the table. To use a floating decimal point, you can enter a value of -1.

The first column lists the x values over which you are computing. Each of the other columns are an equation that you currently have graphed.

The export table feature allows you to output the results of the table to a semicolon delimited set of values. This file could then be opened in a text editor, or even Microsoft Excel. Please note that the export button reads whatever values are currently in the input boxes, and therefore does not necessarily export what is in the output window.


Euclidian vs Polar

There are two main types of 2D equations: Polar and Euclidean. Euclidean is the more familiar technique of using a square x and y grid. Polar is a method of using an angle and a radius to plot a point.

  • Euclidean - 2D Euclidean equations contain just the x variable. The equation implies the y= part so you don't enter that. You'd enter something like sin(2*x).

  • Polar - 2D Polar equations contain just the t variable. The equation implies the r= part so you don't enter that. You'd enter something like sin(2*t).


Entering Equations

There are two ways to enter equations in GraphCalc: the easy way, and the hard way. The hard way, is very similar to the way you would enter equations on a TI-85. Choose the Graph tab, then the 2DGraph menu and Options, highlight the Equations tab and enter up to ten expressions. Here you can also select the color for each equation.

What separates GraphCalc from other calculators though, are the numerous easy way to accomplish things. The easy way to enter an equation for graphing is to type it in, in the expression bar. GraphCalc automatically recognizes the letter 'x' or 't' in an expression and enters it into the equation list and graphs it.


Graph Range

Each graph has its own range. The range is the amount of x and y that the graph window displays. By using the graph options dialog you can change the range of each graph window. The X minimum is the x coordinate that is at the left edge of the graph, the X maximum at the right edge, the Y maximum at the top edge, and the Y minimum at the bottom edge.

The default values of these parameters are (-10, 10) and (-10, 10). Since the width of the window is, by default, 355 pixels, this gives each pixels a width and height of about 0.056.

You may change these values by hand in this dialog box, or use the mouse in the graph window to zoom and pan.


Area Precision

Area Precision is the precision with which you would like areas to be calculated. This option exists because with every additional decimal place of precision added, the calculation will take 10 times longer. The area takes significant amounts of time to calculate if you set this value too large. We suggest keeping this value below 2 or 3.


Graph Line Resolution

Graph Line Resolution is most useful on very very very slow computers. We don't imagine it to have a useful purpose, but it's there if you want it. The number for the resolution is the percent of pixels that are calculated on the line. Normally, every pixel across the graph is computed individually. If this takes too long, you can turn down the Line Resolution to, say, 20%, and the program will only compute every 5th pixel. This would only take one fifth as long. Of course having fewer pixels makes the graph look jagged, so you need to find a balance between speed and smoothness.


Theta Range

Theta min and max is the range over which the equation(s) are plotted. Theta step is the amount between each plotted point. Typical values for min and max would be 0 to 2*pi, and a typical step would be .05.


Polar Grid

These are the parameters for the grid lines in a polar equation. Spacing is the distance between the radius circles. Angle is the angle between the spokes. Typical values would be 1 and pi/6.


Polar View Range

Contrary to euclidean graphing, the range for polar graphing and the range for viewing must be defined separatly. The view range in the polar case just defines the rectangle that the window views, it doesn't define anything about the region that is graphed.


Misc Display Components

The Graph Coordinates option turns on or off the small gray numbers on the edges of the graph that represent the limit of the axis.

The Graph Labels option allows you to have the labels "X" and "Y" appear or appear on the graph as you see fit. The default is off.

The Graph Colors allow you to specify the color of all the various elements of a graph.

  • Background - The background of the graphing area

  • Grid - The color of the grid lines

  • Coordinates - The color of the coordinate labels

  • Other Text on Graph - This is text such as the coordinates of the cursor when tracing or the results of finding the area under an equation

  • Area - the shaded area filled in when you find an area


Plotting Style

  • Dot - Dot method only plots points at each pixel for an equation.

  • Line - Drawing a graph with lines is just the process of connecting the dots from the previous method.Line Width is the width in pixels of the line drawn. Try turning it up for emphasis.


Graph Axes

The Graph Axes are the heavy lines that represent the lines x=0 and y=0. This option can turn those lines on and off as well as set the color of the lines. The size of the lines is in pixels.


Grid Options

In addition to having axes available as an option, GraphCalc can also make a grid of guides at specified intervals. The intervals are defined in the range tab.

In these options you can define whether or not the grid is displayed, the color of the grid, and the width of each grid line.

In polar mode, the grid is a spider web effect of theta lines and radius circles.


Zoom Decimal Precision

Zoom Decimal Precision is the width of each pixel in units when the zoom decimal selection is made. For example, when zoom decimal is selected with a value of 0.05, each pixel would be 0.05 wide and 1 unit would take 20 pixels.


Zoom Factor

Zoom Factor is the amount that the graph will zoom in and out. When you select zoom in, the graph zooms in by the amount specified by this parameter. The default is 200%.


Font Size

The font size option changes the size of text displayed on the graph. This text includes things like the cursor position, distance measurements, and tangent information. Please note though, that these settings cannot change the size of the font when the graph is printed.


Performance Notes

For those lucky enough to have new computers, 3D graphing can be fun and exciting. For others it can be lathargically painful. But it doesn't have to be. Here are some tips to faster graphing.

3D graphing has two two time consuming stages before you even see the graph.

  1. Precompute Points

    2. This operation requires very little memory, but is extremely processor intensive. The amount of time this takes is proportional to the number of x (or r) intervals times the number of y (or t) intervals. Therefore graphing at 100 x 100 intervals takes 4 times as long as graphing at 50 x 50 intervals. The bottom line is, the faster the processor the quicker this operation will be.

  2. Initializing OpenGL

    3. This operation is similar to the previous in that it is mostly a processor operation related to the number of intervals. The other thing done in this stage is computing the colors of the polygons. Rendering in wireframe will speed this operation.

After the progress bar disappears and the graph appears, you'll want to interact with the graph. If you have a slow computer this can be very painful. But interacting is not based on the processor, it is video card depenedant.

An old computer with a generic video card tyring to graph a 100 x 100 graph might only see 2 fps (frames per second), while the same computer with a new GeForce video card will get a smooth 30 fps easily.

If you would like a higher frame rate while interacting you may do any of hte following:

  • Reduce the number of intervals you're graphing

  • Change the Render Mode to wireframe

  • Don't graph the wireframe in addition to the surface

  • Buy a new $200 video card

GraphCalc 3.0 introduces a new 3D engine that is over 25% faster than the engine in version 2. You should notice more frames per second and the ability to graph equations in higher resolution. The limitation in performance is still focused on the video card, so if you're hankerin' to see equation graphed at 200x200, go get yourself a brand new GeForce or Voodoo card.


3D Graph Printing

To print a 3D graph, enter the equation(s) and range you would like to graph. Use the mouse to move the camera to the desired viewpoint. When the graph looks as you would like it printed either right click on the graph or choose the file menu and select print.

In general it is best to keep the printable area relatively square. If you make it very tall or very squashed, the graph may extend beyond the edge of the print region.

The print dialog box appears and you may select the options you want. The options are the same as 2D graph printing.


Export to DXF

DXF is a file format incented by the makers of AutoCAD® as a way to pass 3 dimensional geometric information between different modeling programs. GraphCalc has the capability to export to a DXF file that you could import to any modelling program to be used in 3D scenes.

To export to a DXF, right click on a 3D graph and choose Export to DXF. GraphCalc will ask you for a filename and export all the current active graphs to the file.

Warning: Since DXF files are plain text, they can be very large. For instance, if your graph intervals are 100 x 100 and you export one graph, the file will be about 3.7 Megabytes.


Recompute Equations

This command should never have to be used. But some OpenGL drivers don't do a very good job at refreshing the view of the graph. So if for some reason your display becomes corrupted, you can refresh it by right clicking on the graph and choosing Re-Compute All Equations. This will tell GraphCalc to redraw the view from scratch hopefully fixing your display problem. If your display becomes corrupted often, you should look into getting updated video drivers from your video card manufacturer.


Zooming in 3D

The easiest way to zoom in and out of a 3D graph is to use the mouse wheel. Scrolling up on the wheel zooms in, and scrolling down zooms out.

If your mouse does not have a wheel, you can either use the '+' and '-' keys or right click on the graph and choose zoom in or zoom out.

The amount that GraphCalc zooms is proportional to the size of the graph and the distance from the origin.

To slow down zooming you can hold down the Shift key while you zoom. Note, this will only work if you are using the mouse wheel method.


Panning in 3D

To pan around a 3D Graph, you can use the middle mouse button to drag the graph around. On mice that have wheels, the wheel us usually considered the middle button.

If you don't have a middle button, you can hold the CTRL key while using the right mouse button to drag around.

You can slow down the panning rate if you hold the SHIFT key while panning


Rotating in 3D

To rotate a 3D graph, drag around the graph with the left mouse button. Dragging to the right and left rotates around the y-axis. Dragging up and down rotates around the x-axis. To rotate around the z-axis, hold the CTRL key while dragging right and left.

To slow the rate of rotation, hold the SHIFT key while rotating.


Auto Rotate

Just as you can use the mouse to rotate a 3D graph, you can also ask GraphCalc to do it for you. Using the various auto-rotate options, GraphCalc will spin the current graph around the specified axes until you reclick the same option.


Recenter View

If you get lost while interacting with a 3D graph, you can use the Re-Center View command. Recenter view will reset your view so that you are looking at the origin tilted up 60 degrees from the xy plane.

To do this, select Re-Center View from the right click menu in a 3D graph.


3D Evaluate

The evaluate function can return a z-value for a given set of x and y values. Or, for polar equation, a z-value for a given set of r and t values. To access this function, right click on the 3D graph and choose Evaluate.

In the evaluate dialog box, enter an x value, a y value (r and t for polar) and which equation you'd like to evaluate, and a z value will be returned.


Using Grid Planes

3D graph analysis can sometimes be a little bit difficult. One trick that can help in analysis is to add a grid plane to your equation.

A grid plane is nothing more than an equation graphed in wireframe mode. For instance, if z1 is an equation that bounces around between -1 and 1 (probably a trig function), you might want to put a grid plane around 0.8 to clearly see the peeks.

To make a grid plane, set another equation, say z2, to the hard coded z-value at which you'd like the plane. So in our example, z2 would be "0.8". Then just change the render mode of z2 to wireframe.


Entering 3D Equations

There are two kinds of 3D equations GraphCalc can graph: Polar and Euclidean. You can graph up to 6 of either type of equation at the same time. The current equation type is determined by the current graphing mode located at the top of the graph options dialog box.

  • Euclidean functions are entered in terms of x and y. A nice euclidean example might be sin(x*y)

  • Polar functions are entered in terms of r and t (which is theta). A nice polar example might be cos(r*t).

To enter an equation, first click the radio button of euclidean or polar, then click the checkbox of the equation you'd like to display. Then enter your equation and click ok.


Render Modes

There are four different render modes that can be used with 3D graphs. To change the mode click on the color swatch next to the equation.

  • Wireframe - The graph is drawn as a black wire mesh. This mode is the fastest of the four when rotating.

  • Surface - The graph is drawn as a matrix of connected rectanges. This is also a fairly fast for interacting.

  • Surface with wires - In addition to the graph surface being drawn, a black wireframe on the surface. This is by far the slowest mode for interacting. See Wire Options for details on changing the density of the wires.


Shading Model

There are two different shading models that can be applied to the surface of an equation. Note these options will only be available if the render mode isn't wireframe.

  • x-y position - This method takes four surface shading colors and puts each of the four at one corner of the equation. Then it blends the area in between them. This shading model is particularly effective when the equation is relatively flat.

  • Elevation - This method takes two surface shading colors and uses the top one for high z-values and the bottom one for low z-values, and blends them for values in between. This model is great for viewing rapidly changing functions like sin and cos waves.


Surface Shading Colors

These are the two or four colors used in the shading model. The colors are blended on the swatch similarly to how they will be blended on the equation.


3D Range

Range parameters differ significantly depending on the equation mode, (Polar vs. Euclidean).

  • Euclidean -

    • x min and x max - The minimum and maximum x values to plot. Typical values would be -5 to 5.

    • y min and y max - The minimum and maximum y values to plot. Typical values would be -5 to 5.

    • x intervals - The number of intervals along the range of x to plot. The intervals are the primary determining factor of how long it takes to graph an equation. Older computers would are advised to keep this value to a reasonable number like 50. New computers shouldn't have too much trouble with 150.

    • y intervals - The number of intervals along the range of y to plot. The intervals are the primary determining factor of how long it takes to graph an equation. Older computers would are advised to keep this value to a reasonable number like 50. New computers shouldn't have too much trouble with 150.

  • Polar -

    • r min and r max - The minimum and maximum radius to plot. Typical values would be 0 to 5.

    • t min and t max - The minimum and maximum theta values to plot. If you are in radian mode, you'll usually want 0 to 2pi. If you are in degree mode, you'll usually want 0 to 360.

    • r intervals - The number of intervals along the range of the radius to plot. The intervals are the primary determining factor of how long it takes to graph an equation. Older computers would are advised to keep this value to a reasonable number like 50. New computers shouldn't have too much trouble with 150.

    • t intervals - The number of intervals along the theta range to plot. The intervals are the primary determining factor of how long it takes to graph an equation. Older computers would are advised to keep this value to a reasonable number like 50. New computers shouldn't have too much trouble with 150.


3D Wire Options

Wires are the black lines that can be drawn on top of, or instead of, the surface of an equation (depending on the render mode).

Wires are actually OpenGL lines rendered in 3-space. The wire width is the width of the wires in some small arbitrary units.

The Plot wire every... option is provided for those situations when you want many x/y or r/t intervals for a nice smooth graph, but you don't want as many wires. This option can also help in placing wires at specific intervals (eg. if you are plotting a 10 x 10 unit region using 100 intervals in each direction, you could set this option to 10 to plot a wire every 1 unit).


3D Background Color

This allows you to set the background color for the 3d graph viewing area. Note that this color will not show up when printing. Printing always uses a white background.


3D Axes

  • Misc

    • On - Determines whether or not axes are drawn

    • Width - Determines the width of the axes in arbitrary units

    • Labels - Determines whether or not the letters "z", "x", "y", etc. are drawn

  • Origin Offset - These numbers determines the point at which the axes meet. Although this is not the actual origin, it can serve as a useful guide.

  • Color - The color for each of the axes

  • Axis Increment - In polar graphing, the theta axis needs an increment to determine how often to draw an axis. If you are in radian mode, a typical value would be pi/6. If you are in degree mode a typical value would be 30.


3D Tick Marks

Tick marks are small perpendicular lines drawn on axes to show distance from the origin.

  • General Options

    • On - Determines whether or not tick marks are drawn

    • Tick Width - Determines the width of the tick marks in arbitrary units

    • Tick Length - Determines the length of the tick marks in graph coordinates

  • Tick Intervals - These numbers determine how many graph units are between each tick mark on a given axis.

  • Colors - You can either use the Axis Colors option which will blend the tick marks with the axes, or you can specify your own custom colors.


User Entered Constants

User Entered Constants are like the memory button on a normal handheld calculator, with a few more enhancements.

Within any expression you can specify a variable name followed by '=' and then whatever you want that variable to be set to. For the remainder of your session in GraphCalc you can recall that variable by just entering it into any expression. A list of all the constants you enter will be displayed in the constants menu under the "User Entered" constants section. You can also overwrite a variable to a new value. When you exit GraphCalc, all constants you enter in the program in this manner will be lost. To permanently store constants please see Adding Custom Constants.

Variables must follow a few guidelines:

  • they must start with a lowercase letter

  • after the first lowercase character, they may contain any alphanumeric character

  • the full variable name may be of any length

  • you may NOT set anything to the variables 'x', 'y', 'r', or 't' as they are used strictly as variables for graphing


Using Constants

Say you wanted to use the constant c (the speed of light, you could either click the constants button and choose physics, then c, or you could write "(Physics|c (m/s))". Remember to enclose all constants in parenthesis so the calculator knows that it is a constant and not a variable like x.

Sometimes constant names can get really long and hard to work with, such as "(Planets|Mars|Satellites|Phobos|Bulk Parameters|mass (kg))" just to get the mass of Phobos. If you are going to be using the number a lot, an easy work around is reassign it to a constant of your own, like this "pmass = (Planets|Mars|Satellites|Phobos|Bulk Parameters|mass (kg))". Then you can just use "pmass" in the rest of your equations.

All constants are measured in standard SI units unless specified.


Adding Custom Constants

Constants are one of the best features of GraphCalc. They are fully customizable and dynamically allocated at program startup. The data is contained in the file constants.dat. The file is a simple text file editable with any text editor like notepad.

Although the file looks complicated at first, it is very simply and logically organized. It proceeds like so:
Group := | *GROUP*
 | Group Name
 | [SubGroup]*
 | [Constant Name
 | Constant Value]*
SubGroup := | *Group*

This is the approximate EBNF (Extended Backus Naur Form) of the file. In english, it consists of the word "Group" surrounded by as many asterisks as it's level of recursion. For example, all master categories for be surrounded by a single *, while sub categories are surrounded by two *'s, etc. On the next line comes the name of that category. This can be almost any alpha-numeric string of reasonable length. The lines following that are either the name of a constant followed by its value, or the a sub group which contains more constants.

I know it doesn't sound simple, but just take a look at the file, and I'll bet you can figure it out quickly by looking at the existing constants. You may add any numbers at all. You may even make a constant a formula by putting a whole string equation in for the value of a constant. Constants may also contain other constants.

Rule of thumb: When playing with the constants file, just make a backup and then go nuts with it. You can always move the file back (or re-download it from GraphCalc.com). Happy configuring :)


Using Conversions

Conversions in GraphCalc are powerful and easy to use. Conversions in GraphCalc are treated as postfix operators, i.e. you put your number before it. For example you would say 10 pounds-> grams to obtain the number of grams there are in 10 pounds.

Conversions are similar to constants in that they are text all the way through the calculation. You may either type them in by hand or select one from the conv button.


Adding Custom Conversions

The conversions file is very similar to the constants file. The file containing all the conversions is the units.dat file. This file proceeds like so:
Group := | ****STANDARD****
 | Group Name
 | metric
 | the standard metric unit
 | english
 | the standard english unit
 | the number of standard metric units in one standard english unit
 | [unit name
 | metric | english
 | the number of this unit in one of the standard unit of its type]*

Conclusion, same as the constants file. Do whatever you want, just backup first. Looking at the file is the easiest way to understand it.


Commands

Commands are a useful alternative to using the various menus in GraphCalc. Commands are simple expressions that perform a menu command or set an option in the program. We have aimed to include a command for every program option and action.

The main intention of commands is to allow you to include them in scripts, performing a series of commands all at once. However commands can be entered, 1 at a time, in the expression box, and executed.

Any errors in a command you enter will be be displayed on the screen. There is also an option to turn off these error messages. This is useful when you are running a script and you don't want any messages halting the execution of the script.

Click here to view all commands and the usage of commands.


Script Controls

GraphCalc scripts support two types of control structures, if/else and while. These commands work just like they do in other programming languages. Keep in mind that commads, as with most of GraphCalc's features are case sensitive.

The if/else structure allows for a true/false condition to determine which set of commands to follow. Note that the ElseIf and Else sections are optional. Here is the syntax:

If(boolean condition)
Commands
ElseIf(boolean condition)
Commands
Else
Commands
EndIf

The while structure allows for looping of a set of commands while a boolean condition is true. Here is the syntax:

While(boolean condition)
Commands
EndWhile

One additional command that is often useful in controlling the execution of scripts is the ExitScript command which ceases execution of the script.

Here is an example of a trivial script showing conditional statements:

    If(irand(0:100) > 50)
      [Comment="If"]
    ElseIf(irand(0:10) < 5)
      [Comment="first ElseIf"]
    ElseIf(irand(0:10) > 5)
      [Comment="second ElseIf"]
    Else
      [Comment="Else"]
    EndIf

And an example of a trivial script showing a while loop:

    i=irand(1:10)
    While(i > 0)
     i=i-irand(1:4)
     i=i+irand(1:2)
    EndWhile


Command List

Formula Box Command Options
Command Specifications |  |  |  |  |
- only one command per line |  |  |  |  |
- a command is the only thing that can be on a line, ie if the line starts with a [, it must end with a ] |  |  |  |  |
- comment lines will begin with # (only applicable in gcs files) |  |  |  |  |
- parameters that contain a colon ':' must be surrounded by quotes "". Eg. [Xmax="frand(2:5)"] |  |  |  |  |
- commands will be enclosed in square brackets [ ] |  |  |  |  |
- syntax for command: [command=param 1:param 2:param 3: … :param n] |  |  |  |  |
Notes |  |  |  |  |
For polar mode, replace x's and y's with t's and r's respectively |  |  |  |  |
Please see the additional help files on the use of While and If statements |  |  |  |  |
Category | Command | Command Description | Valid Input (1 parameter per line) | Required | Parameter Description
File |  |  |  |  |
 | Print | displays the print dialog box based on the parameter | none |  |
 | Save | saves the current settings in the current settings file | none |  | saves settings
 | SaveAs | saves the current settings to the file listed in the parameter | any valid file name | YES | file name to save settings to
 | LoadSettings | loads the settings from the specified parameter | any valid file name | YES | file name of settings to load
 | SaveOutput | saves the output window to an rtf file | any valid file name | YES | file name to save output to
Options |  |  |  |  |
 | Sound | turns the sound effects on and off | 1 or on, 0 or off | YES |
 | DetailedOutput | turns detailed output on and off | 1 or on, 0 or off | YES |
 | SaveSettingsExit | sets whether or not you want your settings saved when you exit GraphCalc | 1 or on, 0 or off | YES |
 | SettingsFile | changes the file settings are saved to | any valid file name | YES | name of the file you want settings to be saved to
 | StartupScriptOn | turns the startup script feature on and off | 1 or on, 0 or off | YES |
 | StartupScriptFile | changes the startup script | any valid file name | YES | name of the file you want to be yoru startup script
 | SaveExpressionHistory | sets whether or not you want the expression history saved when you exit GraphCalc and loaded when GraphCalc restarts | 1 or on, 0 or off | YES |
 | SaveOutputWindow | sets whether or not you want the output history saved when you exit GraphCalc and loaded when GraphCalc restarts | 1 or on, 0 or off | YES |
 | ShowCommandErrors | sets whether or not you want command errors to be displayed | 1 or on, 0 or off | YES |
Mode |  |  |  |  |
 | NumberSeperator | turns the number seperator on and off | 1 or on, 0 or off | YES |
 | NumberSeperatorChar | sets the number seperator used in the output formatting | any character | YES |
 | NumberSeperatorFreq | sets the frequency of the number seperator | 1 <= x <= 10 | YES |
 | DecimalSeperator | turns the decimal seperator on and off | 1 or on, 0 or off | YES |
 | DecimalSeperatorChar | sets the decimal; seperator used in the output formatting | any character | YES |
 | DecimalSeperatorFreq | sets the frequency of the decimal seperator | 1 <= x <= 10 | YES |
 | DecimalPlaces | sets the number of decimal places to display answers in | depends on base | YES |
 | Float | turns float on and off | 1 or on, 0 or off | YES |
 | AngleUnit | specifies the angle unit | rad, deg | YES | radians, degrees
 | Scientific | turns scientific mode on or off | 1 or on, 0 or off | YES |
 | IntlMode | turns international mode on or off | us, euro | YES |
 | Base | sets the base GraphCalc runs in | 2 <= x <= 36 | YES |
View |  |  |  |  |
 | Palette | changes the pallette to the one specified in the parameter | probability, math, test, stats, hex, none | YES |
 | Tooltips | turns tooltips on and off | 1 or on, 0 or off | YES |
 | Tab | changes the view to the tab specified in the parameter | output, graph | YES | possible parameters are as follows - output (output window) - graph (first 2D graph tab) - 2d graph tab name (name of 2D graph tab to switch to) - 3dgraph
 | AlwaysOnTop | keeps GraphCalc as the top-most window | 1 or on, 0 or off | YES |
 | FullWindow | displays the tabs in full window | 1 or on, 0 or off | YES |
Misc |  |  |  |  |
 | ClearCharacter | clears the character just to the left of the cursor in the expression box | none |  |
 | ClearExpression | clears the expression box | none |  |
 | ClearOutput | clears the output window | none |  |
 | ClearHistory | clears the expression history | none |  |
 | ClearGraph | turns off all the equations on the currently active graph tab (2D or 3D) | none |  |
 | ClearAll | the same as calling ClearExpression, ClearOutput, ClearHistory, and ClearGraph all at once | none |  |
 | Help | displays the help files | none |  |
 | About | displays the about box | none |  |
 | RunScript | runs a script | any valid file name | YES | the path and file name of the script you would like to run
 | Comment | echos the comment to the output window | string | YES | the text you want printed to the output window
 | Solve | solves the expression for the given variable | expression guess variable | YES YES NO | expression to evaluate initial guess variable to solve for
 | Message | displays a dialog with the given message | any string | YES |
 | DispVal | displays a value and message | any valid expression message | YES NO |
 | PromptVal | prompt the user to enter a value | valid variable name message | YES NO | variable to be set message describing the value to be set
 | ExitScript | stops execution of the script | none |  |
2D Graph Specific
Equations |  |  |  |  |
 | 2DGraphMode | sets the graph mode | euclidean, polar | YES |
 | 2DEq | sets the equation | 1 <= x <= 10 any valid expression | YES YES | equation number equation string
 | 2DEqOn | turns the specified equation on or off | 1 <= x <= 10 1 or on, 0 or off | YES YES | equation number turn equation on or off
 | 2DEqColor | changes the color of the specified equation | 1 <= x <= 10 color | YES YES | equation number color of equation
 | 2DEqAllOn | turns all equations on or off | 1 or on, 0 or off |  | turn equation on or off
 | 2DEqAllEmpty | emptys all the equations and turns them off | none |  |
Range & Precision |  |  |  |  |
 | 2DXmin | sets xmin | v. small <= x <= v. large | YES |
 | 2DXmax | sets xmax | v. small <= x <= v. large | YES |
 | 2DXint | sets the x interval at which to plot grid lines | v. small <= x <= v. large | YES |
 | 2DYmin | sets ymin | v. small <= x <= v. large | YES |
 | 2DYmax | sets ymax | v. small <= x <= v. large | YES |
 | 2DYint | sets the y interval at which to plot grid lines | v. small <= x <= v. large | YES |
 | 2DAreaPrecision | sets the number of decimal places of precision to calculate an area to | 1 <= x <= 10 | YES |
 | 2DFixedGrid | Xint and Yint will not change when the graph is zoomed in or out if this is on | 1 or yes. 0 or no | YES |
 | 2DPolarGridAngle | sets the angle interval at which to plot grid lines | 0 < x < 2*pi | YES |
 | 2DPolarGridSpace | sets the spacing of the circular grid lines | 0 < x <= v. large | YES |
 | 2DPolarThetaMin | sets the minimum angle at which to start plotting a polar function | v. small <= x <= v. large | YES |
 | 2DPolarThetaMax | sets the maximum angle at which to start plotting a polar function | v. small <= x <= v. large | YES |
 | 2DPolarThetaStep | sets the interval size at which to calculate a polar equation | 0.00000001 <= x <= 10000000 | YES |
 | 2DPolarXmin | sets xmin for the polar graph view | v. small <= x <= v. large | YES |
 | 2DPolarXmax | sets xmax for the polar graph view | v. small <= x <= v. large | YES |
 | 2DPolarYmin | sets ymin for the polar graph view | v. small <= x <= v. large | YES |
 | 2DPolarYmax | sets ymax for the polar graph view | v. small <= x <= v. large | YES |
Display |  |  |  |  |
 | 2DBackgroundColor | sets the background color | color | YES |
 | 2DAxisColor | sets the axes color | color | YES |
 | 2DGridColor | sets the grid color | color | YES |
 | 2DCoordinatesColor | sets the coordinates color | color | YES |
 | 2DOtherTextColor | sets the color of all other text on the graph | color | YES |
 | 2DAreaColor | sets the shading color for an area | color | YES |
 | 2DLabels | turns the labels on and off | 1 or on, 0 or off | YES |
 | 2DAxis | turns the axis on and off | 1 or on, 0 or off | YES |
 | 2DGrid | turns the grid on and off | 1 or on, 0 or off | YES |
 | 2DCoordinatesPos | turns the cursor cordinate position on and off | 1 or on, 0 or off | YES |
 | 2DAxisSize | size of axis lines | 1 <= x <= 50 | YES |
 | 2DGridSize | size of grid lines | 1 <= x <= 50 | YES |
 | 2DLineSize | size of equation lines | 1 <= x <= 50 | YES |
 | 2DZoomDecimalPrec | delta-x of 1 pixel when zoom decimal is selected | x > 0 | YES |
 | 2DPlotStyle | sets the plotting style | dot, line | YES |
 | 2DLineResolution | percent of pixels to plot | 1 <= x <= 100 | YES |
 | 2DZoomFactor | percent to zoom | 100 <= x <= 1000 | YES |
 | 2DFontSize | size of text on graph | 6 <= size <= 24 | YES |
Menu Commands |  |  |  |  |
 | 2DCopyGraph | copies graph to clipboard | none |  |
 | 2DZoomOutX | zooms out on the x axis | none |  |
 | 2DZoomOutY | zooms out on the y axis | none |  |
 | 2DZoomOutXY | zooms out on the x and y axis | none |  |
 | 2DZoomInX | zooms in on the x axis | none |  |
 | 2DZoomInY | zooms in on the y axis | none |  |
 | 2DZoomInXY | zooms in on the x and y axis | none |  |
 | 2DZoomStandard | zooms standard | none |  |
 | 2DZoomDecimalPrec | zooms to decimal precision | none |  |
 | 2DZoomTrig | zooms to trig precision | none |  |
 | 2DZoomInteger | zooms to integer precision | none |  |
 | 2DZoomFit | zoom fit | none |  |
 | 2DPreviousRange | sets the previous range | none |  |
 | 2DTrace | turns trace on and off | 1 or on, 0 or off | YES |
 | 2DFIndAreaOff | turns the area off and removes it from the graph | none |  |
 | 2DFindArea | finds the area of the specifed range and equations, displays it on the graph, and returns the output to the otuput window if the eq2 is left off, the area under eq1 will be calculated | v. small <= x <= x max x min <= x <= v. large 1 <= x <= 10 1 <= x <= 10 | YES YES YES NO | x min x max eq1 eq2
 | 2DEvaluate | evaluates equation and returns output to the output window | 1 <= x <= 10 v. small <= x <= v. large | YES YES | eq x
 | 2DTangentLine | draws a tangent line at point x on eq | 1 <= x <= 10 v. small <= x <= v. large | YES YES | eq x
 | 2DClearTangentLines | clears all drawn tangent lines | none | YES |
 | 2DDistanceOff | turns off the distance line and removes it from the graph | none |  |
 | 2DDistance | finds the distance between 2 points x1 is on eq1 and x2 is on eq2 if eq2 is left off x2 will also be on eq1 | v. small <= x <= x max x min <= x <= v. large 1 <= x <= 10 1 <= x <= 10 | YES YES YES NO | x1 x2 eq1 eq2
 | 2DAddGraphTab | adds a graph tab | none | YES |
 | 2DRenameTab | renames the current graph tab | any text string | YES |
 | 3DDyDx | calculates the slope of the equation at the specified point | 1 <= x <= 10 v. small <= x <= v. large | YES YES | eq x
 | 2DRemoveGraphTab | removes specified graph tab or current one if parameter is left off | tab name | NO |
 | 2DSaveBitmap | saves the graph to a bitmap file | any valid file name | YES | the path and file name where you want to save the bitmap to
 | 2DEqIntersection | calculates the x and y values of the intersection of the 2 equations | 1 <= eq1 <= 10 1 <= eq2 <= 10 v. small <= x <= v. large | YES YES YES | equation 1 equation 2 initial guess
 | 2DXIntercept | calculates the intersection of the equation with the y axis | 1 <= x <= 10 v. small <= x <= v. large | YES YES | equation initial guess
 | 2DYIntercept | calculates the intersection of the equation with the y axis | 1 <= x <= 10 | YES | equation
 | 2DStationaryPoint | finds a stationary point, if any, on the equation in the given range | 1 <= eq1 <= 10 v. small <= min < max min < x <= v. large | YES YES YES | equation minimum maximum
3D Graph Specific
Misc |  |  |  |  |
 | 3DBackgroundColor | sets the background color | color | YES |
 | 3DEvaluate | evaluates equation and returns output to the output window | 1 <= x <= 6 v. small <= x <= v. large v. small <= y <= v. large | YES YES YES | eq x y
Wireframe and Axes Options |  |  |  |  |
 | 3DWireResolution | sets the resolution of wires rendered on an equation | depends on the x and y intervals | YES | must be greater than or equal to the smaller of Xintervals and Yintervals
 | 3DGridLineWidth | specifies the thickness of the grid lines | 1 <= x <= 20 | YES |
 | 3DAxesOn | turns the axis on and off | 1 or on, 0 or off | YES |
 | 3DAxesLabelsOn | turns the axes labels on and off | 1 or on, 0 or off | YES |
 | 3DXAxisColor | sets the x axis color | color | YES |
 | 3DYAxisColor | sets the y axis color | color | YES |
 | 3DZAxisColor | sets the z axis color | color | YES |
 | 3DXAxisOrigin | axes offset along x-axis | v. small <= x <= v. large | YES |
 | 3DYAxisOrigin | axes offset along y-axis | v. small <= x <= v. large | YES |
 | 3DZAxisOrigin | axes offset along z-axis | v. small <= x <= v. large | YES |
Tick Marks |  |  |  |  |
 | 3DTickMarksOn | turns the tickmarks on and off | 1 or on, 0 or off | YES |
 | 3DCustomTickColor | sets whether or not you want to use custom tick mark colors or the colors of the axes | 1 or yes. 0 or no | YES |
 | 3DXTickInterval | sets the x tickmark interval | 1e-006 <= x <= 10000000000 | YES |
 | 3DYTickInterval | sets the y tickmark interval | 1e-006 <= x <= 10000000000 | YES |
 | 3DZTickInterval | sets the z tickmark interval | 1e-006 <= x <= 10000000000 | YES |
 | 3DXTickColor | sets the color of the x-axis ticks | color | YES |
 | 3DYTickColor | sets the color of the y-axis ticks | color | YES |
 | 3DZTickColor | sets the color of the z-axis ticks | color | YES |
 | 3DTickWidth | sets the width of the tick marks | 1 <= x <= 50 | YES |
 | 3DTickLength | sets the length of the tick marks | 1e-004 <= x <= 1000 | YES |
Range & Precision |  |  |  |  |
 | 3DXintervals | sets the number of intervals along x axis | 1 <= x <= 1000 | YES |
 | 3DYintervals | sets the number of intervals along y axis | 1 <= x <= 1000 | YES |
 | 3DXmin | sets xmin | v. small <= x <= v. large | YES |
 | 3DXmax | sets xmax | v. small <= x <= v. large | YES |
 | 3DYmin | sets ymin | v. small <= x <= v. large | YES |
 | 3DYmax | sets ymax | v. small <= x <= v. large | YES |
Equations |  |  |  |  |
 | 3DGraphMode | set the graph mode | euclidean, polar | YES |
 | 3DEq | sets the specified equation | 1 <= x <= 6 any text string | YES YES | equation number equation string
 | 3DEqWireMode | sets the wire mode | 1 <= x <= 6 W,C,CW | YES YES | equation number wire mode
 | 3DEqShadeMode | sets the color shading model | 1 <= x <= 6 xypos or elevation | YES YES | equation number shading mode
 | 3DEqColorXmaxYmax | sets the xmax ymax color | 1 <= x <= 6 color | YES YES | equation number equation color
 | 3DEqColorXmaxYmin | sets the xmax ymin color | 1 <= x <= 6 color | YES YES | equation number equation color
 | 3DEqColorXminYmin | sets the xmin ymin color | 1 <= x <= 6 color | YES YES | equation number equation color
 | 3DEqColorXminYmax | sets the xmin ymax color | 1 <= x <= 6 color | YES YES | equation number equation color
 | 3DEqOn | turns the specified equation on or off | 1 <= x <= 6 1 or on, 0 or off | YES YES | equation number on or off
 | 3DEqAllOn | turns all equations on or off | 1 or on, 0 or off |  | turn equation on or off
 | 3DEqAllEmpty | emptys all the equations and turns them off | none |  |
Menu Commands |  |  |  |  |
 | 3DRecomputeAll | recomputes all the equations | none |  |
 | 3DCopyGraph | copies graph to clipboard | none |  |
 | 3DReCenterView | recenters the graph view | none |  |
 | 3DSaveBitmap | saves the graph to a bitmap file | any valid file name | YES | the path and file name where you want to save the bitmap to
 | 3DExportDXF | saves the currently displayed graphs to a DXF file | any valid file name | YES | the path and file name where you want to save the export
View Commands |  |  |  |  |
 | 3DRotateXIncrease | rotates the view about the x axis | 1 <= x <= 360 | NO | degrees to rotate by default is 1 degree
 | 3DRotateXDecrease | rotates the view about the x axis | 1 <= x <= 360 | NO | degrees to rotate by default is 1 degree
 | 3DRotateYIncrease | rotates the view about the y axis | 1 <= x <= 360 | NO | degrees to rotate by default is 1 degree
 | 3DRotateYDecrease | rotates the view about the y axis | 1 <= x <= 360 | NO | degrees to rotate by default is 1 degree
 | 3DRotateZIncrease | rotates the view about the z axis | 1 <= x <= 360 | NO | degrees to rotate by default is 1 degree
 | 3DRotateZDecrease | rotates the view about the z axis | 1 <= x <= 360 | NO | degrees to rotate by default is 1 degree
 | 3DZoomIn | zoom in | none |  |
 | 3DZoomOut | zoom out | none |  |
 | 3DAutoRotate | toggle the state of auto rotating for all axis | none |  |
 | 3DAutoRotateX | toggle the state of auto rotating | none |  |
 | 3DAutoRotateY | toggle the state of auto rotating | none |  |
 | 3DAutoRotateZ | toggle the state of auto rotating | none |  |
 | 3DAutoRotateIncreaseSpeed | increase the autorotating speed | none |  |
 | 3DAutoRotateDecreaseSpeed | decrease the autorotating speed | none |  |
 | Color Table |  |  |  |
 | Black |  |  |  |
 | Brown |  |  |  |
 | Dark Olive Green |  |  |  |
 | Dark Green |  |  |  |
 | Dark Teal |  |  |  |
 | Dark Blue |  |  |  |
 | Indigo |  |  |  |
 | Dark grey |  |  |  |
 | Dark Red |  |  |  |
 | Orange |  |  |  |
 | Dark yellow |  |  |  |
 | Green |  |  |  |
 | Teal |  |  |  |
 | Blue |  |  |  |
 | Blue-Grey |  |  |  |
 | Grey-40 |  |  |  |
 | Red |  |  |  |
 | Light Orange |  |  |  |
 | Lime |  |  |  |
 | Sea Green |  |  |  |
 | Aqua |  |  |  |
 | Light Blue |  |  |  |
 | Violet |  |  |  |
 | Grey-50 |  |  |  |
 | Pink |  |  |  |
 | Gold |  |  |  |
 | Yellow |  |  |  |
 | Bright Green |  |  |  |
 | Turquoise |  |  |  |
 | Skyblue |  |  |  |
 | Plum |  |  |  |
 | Light Grey |  |  |  |
 | Rose |  |  |  |
 | Tan |  |  |  |
 | Light Yellow |  |  |  |
 | Pale Green |  |  |  |
 | Pale Turquoise |  |  |  |
 | Pale Blue |  |  |  |
 | Lavender |  |  |  |
 | White |  |  |  |


Saving Scripts

To make the task of creating a script easier, we have created a feature that allows you to save expressions you have already entered.

The "Save Commands" dialog box provides the interface for saving commands you have already entered into the program's expression box.

Choose a file name for your script, and then the expressions to store in your script.

The list of expressions is ordered with the first expression entered at the top and the most recent expression entered at the bottom of the list. Expressions will be saved in the order in which they appear in the list. To select an expression for saving, just click on it, and continue clicking on expressions until you have all your expressions selected.

When you are done, click on the "Save" button to save your expressions to a script.


Running Scripts

To run a script, select "Run Script" from the "File" menu. You will be prompted to select a script. After choosing a script click ok and the script will run. A progress bar will be displayed during the execution of the script. To cancel the execution of the script, press "Cancel" in the progress dialog box, or if you have the dialog box turned off you can press Esc to stop the script.

You will be prompted with any errors in the script. Any command with an error in it will be ignored and the script will continue.

Introduced in GraphCalc 3.0, the Script Library makes this whole process simple and organized.


Equation Solver

The equation solver is a powerful tool for solving single variable algebraic equations. There a two forms of equations you can enter in the solver. The first is a full equality such as "x^2=x+1". With an initial guess of 0, GraphCalc returns -0.618 for this equation. There are other numbers that work in this equation, and to get them, you need to supply GraphCalc with a guess closer to the answer that you want. For instance, if you guess 1, GraphCalc will return 1.618*.

The other method of using the equation solver involves just a single side of an equality. For instance, if you enter "3x^2-8x+3" GraphCalc will find the roots. This occurs when the equation equals 0. This equation equals 0 when x = 0.451.

* 1.618... is what is known as the golden ratio. The number has many fun properties. Look it up on a search engine for lots of information.


Script Library

The script library is a convenient method of accessing scripts you've written quickly and easily. This menu item mimiks the directory structure of the scripts subdirectory. By choosing a script from this area, it is really the same thing as choosing Run Script from the file menu.

When the scripts are loaded, the first line is searched for a commented line (eg "#My script title") or comment command (eg "[Comment=My Script Title]"). This comment will be use as the text in teh Script Library menu.

The script library, in combination with a few new commands we have implemented, makes it easy to write a script for almost any equation or set of calculations that you have to use over and over again. We have included new commands to display and retrieve information via a message box while the script is running.

Here is an example of a script that prompts for information and displays information in a dialog.

#Volume of Cylinder
[PromptVal=radius]
[PromptVal=height]
volume=pi*radius^2*height
[DispVal=volume:The volume of the cylinder is]

If you included this script in the "scripts" directory, you could easily access it by going to Tools:Script Library:Volume of Cylinder.

If you write any additional scripts, you can put them in the scripts subdirectory and they'll show up in the library. Also, if you write any scripts that might be useful to others, email it to us at newscript@graphcalc.com and we might include it in the next version of GraphCalc.


Mode Dialog Box

    Number Separator

    This specifies if, how often, and what character you would like displayed in the whole number part of the answer. For example, this feature can put commas in every three digits.

    Decimal Separator

    This specifies if, how often, and what character you would like displayed in the decimal part of the answer.

    Decimal Places

    Specifies how many decimal places you would like displayed. This varies with the current base. For lower bases, like binary, it can go to much higher precision. Also, you can use the float feature to automatically display as many digits as are necessary.

    Example Output

    This area shows you what a number would look like with your current settings.

    Units

    Specifies whether trig functions should use radians or degrees for calculations.

    Scientific

    Specifies whether the calculator should output numbers in normal or scientific mode.

    International Mode

    US Mode uses a '.' as the separator between the whole and decimal parts of a number. European mode uses a ','.

    Base

    Tells the calculator in which base to compute.


Startup Script

After you have saved a script, you can have that script run when graphcalc starts. In the options menu under Program Options, you can set the script that runs on startup.

For example, you might want GraphCalc to switch to the 2D Graph tab, set the viewrange, and maybe set your preferred colors.


Program Exit

Here you can decide whether the following things happen on shutdown:

  • Save Settings

  • Save Expression History

  • Save Output Window


Misc Options

  • Tooltips - This toggles the display of tooltips on top of the buttons. Tooltips can provide helpful information about the purpose and parameters of functions.

  • Sound Effects - This toggles the clicking sound when pressing the buttons.

  • Detailed Output - This toggles the display of extra computing information in computations. When this is on, you'll see step by step how GraphCalc figured out the answer.

  • Display Command Error Messages - With this selection on, you'll be prompted when a command has an error. With this option off, GraphCalc will attempt to ignore commands with errors.

  • Display Script Progress Dialog - Uncheck this box to turn off the progress bar that is normally displayed when running scripts.


New Feature

Have a new idea for GraphCalc? Fill out this form describing your new idea or feature and we will do our best to incorporate it in the next version of GraphCalc! NOTE: you must be connected to the internet to submit form!

Name
Email Email Privacy Policy
Description of the new feature


Send Us Your Scripts

Have a new script for GraphCalc? Fill out this form describing it and we will do our best to incorporate it in the next version of GraphCalc! Plus, we'll include it right away in our online script library. NOTE: you must be connected to the internet to submit form!

Name
Email (optional) Email Privacy Policy
Short Description of the script
Script


New Tip/Trick

With the increased power and functionality of GraphCalc, the limiting factor in its functionality is no longer the program, but rather your own creativity.

In order to share your ideas with other GraphCalc users we have created an online database of tips/tricks that people have come up with, and also this form so that you may contribute to this database.

NOTE: you must be connected to the internet to submit form!

Category
Subject
Description


Web Resources

Home Page | For the most up to date information about GraphCalc
Support | For helpful technical support
Contact | To contact the authors of GraphCalc
New Features | Tell us about things you'd like to see added in the next version
New Script | Send us any new scripts you've written that you think others would like
Bugs | To let us know about issues with GraphCalc
Documentation | The web version of this help file. It may have more recent complete information than this file.
Tips and Tricks | A compendium of tips and tricks we've brainstormed to make GraphCalc more useful than ever.


Thank You

The authors of GraphCalc would like to thank Prof. Robert Kribbs for his input in the language of this help file. Many thanks also go to all those who have helped us make this program as robust as it is today.


Purchasing GraphCalc

In the beginning, there was GraphCalc. It was free, and things were good. Then we, the authors, started incurring many expenses. We asked for donations, but didn't receive enough to cover our costs.

So, we started to charge for it. But that didn't make much money either. So, we are going to spend less time developing it, and reduce our costs and just give it away.

There is no more purchasing. GraphCalc costs $0.00. No tax, no shipping and handling. You may use it on 1000 computers (or more) without paying anything. Although, if you find it tremendously useful, and you'd like to see it advance you can encourage us to do so by sending us whatever amount you like.


Usage Agreement

By using this program you hereby give the authors the right to 50% of your yearly income and your first born.

There really isn't much to agree to now that GraphCalc is free.

Also, although we are very confident of our calculator's precision and accuracy, please don't use it for mission or safety critical applications. We cannot possibly guarantee that our results are 100% accurate.